<?php
$update = 'update';
include '../../includes/common.php';  //请根据实际情况调整路径
use lib\Tips;
@header('Content-Type: application/json; charset=UTF-8'); //返回json

if($conf['version'] == Version ){
    exitjson(200,"您的数据库信息已是最新版:{$conf['version']},无需更新！");
    
}

require './db.class.php';
$sqls = file_get_contents(Version.'.sql');
$sql=explode(';',$sqls);

$cn = DB::connect($dbconfig['host'],$dbconfig['user'],$dbconfig['pwd'],$dbconfig['dbname'],$dbconfig['port']);

if (!$cn) {
    $result = array('code' => -1, 'msg' => '数据库连接失败: '.DB::connect_error());
    exit(json_encode($result));
}
DB::query("set sql_mode = ''");
DB::query("set names utf8");
$errorCount = 0;  
$successCount = 0; 
$errorMessages = ''; // 用于存储错误信息
for ($i = 0; $i < count($sql); $i++) {
    if (trim($sql[$i]) == '') continue;

    try {
        if (DB::query($sql[$i])) {
            ++$successCount;
        } else {
            throw new Exception("SQL执行错误: " . DB::error() . " SQL语句: " . $sql[$i]);
        }
    } catch (Exception $e) {
        // 记录错误信息，但继续执行下一条
        $errorMessages .= $e->getMessage() . '<br/>';
        ++$errorCount; // 统计错误数量
    }
}

$initMessage = '';
//限制一下版本 检测是这个版本才重置
if(Version == '10025'){
    $initMessage .= '检测到您是第一次使用此框架 正在重置 部分核心数据<br/>';
    saveSetting('SKY',randpw(32));
    saveSetting('template','default');
    saveSetting('logintemplate','default');
    $initMessage .= '已生成新的SKY密钥<br/>';
    $filePath = PUBLICROOT . 'admin.php';
    
    if (file_exists($filePath)){
        $name = randpw(5);
        $newFileName = PUBLICROOT . $name.'.php';
         if (rename($filePath, $newFileName)){
            $adminUrl = $conf['localurl'].$name.'.php';;
            $initMessage .=  "后端地址：{$adminUrl}<br/>";
            $initMessage .= '后端账号：admin<br/>';
            $initMessage .= '后端密码：123456<br/>';
            $initMessage .= '前端所有登录密码已重置为：123456..<br/>';
        } else {
            $adminUrl = $conf['localurl'].'admin.php';;
             $initMessage .= '重命名后端入口失败！请手动修改！<br/>';
             $initMessage .= '后端账号：admin<br/>';
             $initMessage .= '后端密码：123456<br/>';
             $initMessage .= '前端所有登录密码已重置为：123456..<br/>';
        }
    }
}
saveSetting('version',Version);

exitjson(200,$initMessage."数据库更新完成！成功{$successCount}条，失败{$errorCount}条。<br/>".$errorMessages);

?>
